第 2 步 - 微调动画

在上一步中,您创建了 BeachBall 从地面反弹的动画,但该动画看起来非常生硬。这是因为动画为关键帧之间的迁移使用了线性插值。在 Kanzi Studio 中,您可以使用不同的插值模式创建不同的动画。请参阅更改关键帧之间的插值模式

在本步骤中,您首先通过移除未使用的动画数据 (Animation Data) 项清理动画,通过在关键帧之间使用贝塞尔插值使弹球动画更流畅,并且让阴影对 BeachBall 的位置作出反应。

清理动画

当您将属性拖动到动画剪辑编辑器 (Animation Clip Editor) 以创建关键帧,Kanzi Studio 自动将该属性各种特性的动画数据 (Animation Data) 项添加到动画剪辑 (Animation Clip) 项。由于只更改了渲染变换 (Render Transformation) 属性的平移 Y (Translation Y)缩放 Y (Scale Y) 特性,您可以删除所有其他动画数据 (Animation Data) 项。

动画 (Animations) > 动画剪辑 (Animation Clips) 中的素材库 (Library) 右键点击要清理的动画剪辑 (Animation Clip) 项,并选择删除有效关键帧为 1 或 0 的动画 (Delete Animations with One or Zero Effective Keyframes)
通过这种方式,将删除不含动画所需信息的所有动画数据 (Animation Data) 项。

使动画更流畅

在本节中,您学习将关键帧之间的线性插值更改为贝塞尔插值,以使动画更流畅。

要使动画更流畅:

  1. 动画剪辑编辑器 (Animation Clip Editor) 中仅选择平移 Y (Translation Y) 属性字段动画数据 (Animation Data) 项。
  2. 使用鼠标滚轮在动画画布上放大,并点击 选择移动工具 (Move tool)
  3. 在动画画布中,通过点击前两个关键帧周围区域选中前两个关键帧并拖动。选定关键帧变成白色。
    第一个关键帧定义 BeachBall 节点的起始位置,第二个关键帧定义 BeachBall 节点在撞击Ground 节点时的位置。这些是要更改插值以使动画更流畅的关键帧。
  4. 点击 将关键帧之间的插值更改为贝塞尔插值。
    通过贝塞尔插值,您可以控制两个关键帧之间的数据更改的速度。
  5. 使用移动工具 (Move tool) 选择定义当 BeachBall 节点离开地面并返回其起始位置时节点位置的最后两个关键帧,然后点击 将关键帧之间的插值更改为贝塞尔插值。
  6. (可选) 您可以通过调整每帧的贝塞尔切线句柄来调整动画流畅度。注意,如果要创建循环动画,可通过使起始和结束关键帧之间的插值对称获得最佳效果。

让阴影对 BeachBall 的位置作出反应

在本节中,您将学习使用 Kanzi 绑定将Ground 节点上的阴影纹理尺寸关联到 BeachBall 节点到 Ground 节点的距离。当 BeachBall 节点远离Ground 节点时使阴影更大、更透明。

让阴影对 BeachBall 的位置作出反应:

  1. 工程 (Project) 中选择Ground 节点,并在属性 (Properties) 中点击绑定 (Bindings) 属性旁的 ,并在绑定参数编辑器 (Binding Argument Editor) 中设置:点击保存 (Save)

    通过绑定,您可以通过 BeachBall 节点在 y 轴上的位置控制 x 轴上Ground 节点的缩放:BeachBall 节点越高,地面节点上的阴影纹理越大。

  2. 属性 (Properties) 中点击+ 添加绑定 (+ Add Binding) 以添加另一个绑定。使用与上一步骤中相同的绑定表达式,但绑定到渲染变换 (Render Transformation) 属性的缩放 Y (Scale Y) 特性,而非缩放 X (Scale X) 特性。
    绑定和上一步骤中的绑定之间的唯一区别在于,通过绑定,您可以绑定 y 轴上的Ground 节点。
  3. 添加另一个绑定,在绑定参数编辑器 (Binding Argument Editor) 中设置:
    1. 属性 (Property)混合强度 (Blend Intensity)
    2. 表达式 (Expression)
      Y = {@../BeachBall/Node3D.RenderTransformation}.TranslationY
      MIX(0.5, 0.0, Y*0.2)

    通过绑定,您可以控制 Ground 节点上的阴影纹理(通过 BeachBall 节点在 y 轴上的位置):BeachBall 节点越高,地面节点上的阴影纹理越弱。绑定使用混合函数调整 混合强度 (Blend Intensity) 属性的最终值。您可以使用其他绑定函数调整该值。请参阅绑定表达式参考


< 上一步

接下来该做什么?

在本教程中,您学习了如何在 Kanzi Studio 中创建简单的关键帧动画。现在,您可以学习如何:

另请参阅

要了解创建Kanzi 应用程序的更多信息,请参阅教程

要详细了解有关如何控制 Kanzi 中的动画回放,请参阅播放关键帧动画

要详细了解有关 Kanzi 中的动画,请参阅动画

要了解有关 Kanzi Studio 功能的更多信息,请参阅使用 ...